﻿#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

//死循环  圆
//unsigned char i = 0;
//int main()
//{
//	for (i = 0; i <= 255; i++)  //0-255循环  始终为真恒成立
//	{
//		printf("hello world\n");
//	}
//	return 0;
//}


//int main()
//{
//	unsigned int i;
//	for (i = 9; i >= 0; i--)
//	{
//		printf("%u\n", i);
//	}
//	return 0;
//}


////X86环境 ⼩端字节序
//int main()
//{
//	int a[4] = { 1, 2, 3, 4 };
//	int* ptr1 = (int*)(&a + 1);
//	int* ptr2 = (int*)((int)a + 1);
//	printf("%x,%x", ptr1[-1], *ptr2);
//	return 0;
//}


//int main()
//{
//	int a[4] = { 1,2,3,4 };
//	int* ptr1 = (int*)(&a + 1);
//	int* ptr2 = (int*)((int)a + 1);
//	printf("%x,%x", ptr1[-1], *ptr2);
//
//	return 0;
//}



//#include <stdio.h>
//int main()
//{
//	int n = 9;
//	float* pFloat = (float*)&n;
//	printf("n的值为：%d\n", n);
//	printf("*pFloat的值为：%f\n", *pFloat);
//	*pFloat = 9.0;
//	printf("n的值为：%d\n", n);
//	printf("*pFloat的值为：%f\n", *pFloat);
//	return 0;
//}


//int main()
//{
//	int i = 1;
//	printf("%x\n", &i);
//	//0x 00 00 00 01
//	float n = 0.4554f;//输入值与存储值接近但不相等
//	printf("%.10f", n);
//}



//struct Stu
//{
//	char name[20];
//	int number;
//};
//
//int main()
//{
//	struct Stu z1 = { "z",1 };
//	struct Stu z2 = { .name = 'h',.number = 2 };
//	printf("%s %d\n", z1.name, z1.number);
//	struct Stu s = { "张三", 20  };
//	printf("%s %d\n", s.name, s.number);
//	printf("%s %d\n", s.name, s.number);
//
//	return 0;
//
//}


//匿名结构体声明
//struct S
//{
//	char name[20];
//
//}s1;
//
//int main()
//{
//	/*struct S s1 = { "h" };
//	printf("%s\n", s1.name);*/
//
//}


//
////匿名结构体重命名用typedef  无标签名
//typedef struct
//{
//	char name[20];
//
//}Stu;//Stu是类型名
//
//int main()
//{
//	Stu s1 = { "z" };
//	printf("%s\n", s1.name);
//}




//结构体指针
struct S
{
	char name[20];

}* s1;//Stu是类型名

int main()
{
	struct S s2 = { "g" };
	printf("%s\n", s2.name);

	return 0;
}



